home *** CD-ROM | disk | FTP | other *** search
/ PC World 2008 September / PCWorld_2008-09_cd.bin / v cisle / sadanastroju / delicious_bookmarks-2.0.64-fx.xpi / chrome / deliciousBookmarks.jar / content / loginwindow.js < prev    next >
Encoding:
Text File  |  2008-06-19  |  1.7 KB  |  55 lines

  1. var gYBObservService = null;
  2. var gYBLoginWindow = null;
  3.  
  4. var YBPopupWindow = {
  5.     
  6.    observe: function(subject, topic, data) {
  7.       if ( data == "loggedin" ) {
  8.          try {                        
  9.            if ( gYBLoginWindow ) {
  10.               try { 
  11.                 gYBLoginWindow.close();
  12.               } catch (e) {
  13.                 //do nothing
  14.               } finally {
  15.                 gYBLoginWindow = null;
  16.                 this.unsubscribeToCookieChange();
  17.               }
  18.            }            
  19.          } catch ( e ) {}//ignore
  20.       }
  21.    },
  22.    
  23.     openURL: function(aUrl, aTitle, aWidth, aHeight) {
  24.       this.subscribeToCookieChange();
  25.       // yes, it's hacky.  yes, it works.
  26.       try {
  27.         gYBLoginWindow.location.href = aUrl;
  28.       } catch (e) {
  29.         gYBLoginWindow = ybookmarksUtils.openWindow(aUrl, aTitle, aWidth, aHeight);
  30.       } finally {
  31.         gYBLoginWindow.focus();
  32.       } 
  33.     },
  34.     
  35.     subscribeToCookieChange: function() {
  36.            gYBObservService = Components.classes["@mozilla.org/observer-service;1"].
  37.                        getService( Components.interfaces.nsIObserverService);
  38.            gYBObservService.addObserver( YBPopupWindow, "ybookmark.userChanged", false ); 
  39.            
  40.     },
  41.     
  42.     unsubscribeToCookieChange: function() {
  43.            gYBObservService = Components.classes["@mozilla.org/observer-service;1"].
  44.                        getService( Components.interfaces.nsIObserverService);
  45.            gYBObservService.removeObserver( YBPopupWindow, "ybookmark.userChanged" ); 
  46.     },
  47.     
  48.     showLoginWindow: function() {
  49.         var bundle = document.getElementById( "strbndl_idManager");    
  50.         var title = bundle.getString("extensions.ybookmarks.login.page.title");
  51.           this.openURL( deliciousService.getLoginUrl(), title, 800, 600 );
  52.     }
  53. };
  54.  
  55.